//
//  BaseAction.m
//  RunLoopDemo
//
//  Created by zhangjikuan on 2020/11/26.
//  Copyright © 2020 hsgd. All rights reserved.
//

#import "BaseAction.h"
#import "DealForwardTool.h"
@implementation BaseAction
#pragma - Public
- (void)doLogin {
    NSLog(@"doLogin");
}

- (void)doLoginOut {
    NSLog(@"doLoginOut");
}


// 第一次转发机会，如果是有方法没有实现，调用了没有实现的方法
+ (BOOL)resolveInstanceMethod:(SEL)sel {
    NSLog(@"1");

    return NO;
}

// 第二次机会，是交给我们指定的类来响应这个方法，交给另外的实例去处理
- (id)forwardingTargetForSelector:(SEL)aSelector {
    NSLog(@"2");

    // 转发给指定对象
    //
    
    DealForwardTool *deal = [[DealForwardTool alloc] init];
    
    return deal;
    
    return [super forwardingTargetForSelector:aSelector];
}

// 如果第二次有实例去处理sel的话，不会走下面的这个方法了就
// 如果第二次消息转发没有实例去处理sel的话，会进行第三次机会的消息转发，找不到会闪退崩溃
- (void)forwardInvocation:(NSInvocation *)anInvocation {
    NSLog(@"3");
}
@end
